// 声明一个变量 num ，并指定类型为number类型
let num: number
// 当num的值为定义的类型：数字时正常
num = 10
num = 888
// 当num的类型和定义的类型不一样时候，会报错，num下面有个红色波浪，鼠标放上去会提示错误
// 此时使用tsc编译ts文件，终端也会提示错误，但是会正常编译成js文件！！！！！！
// num = '字符串'
let str: string
str = 'abcdefg'

let bool: boolean = true

//..............................................................................................................
//..............................................................................................................
//..............................................................................................................
//..............................................................................................................
//..............................................................................................................


// 如果声明变量和赋值同时进行。ts会自动进行变量类型监测定义
let bool2 = false

//..............................................................................................................
//..............................................................................................................
//..............................................................................................................
//..............................................................................................................
//..............................................................................................................
//..............................................................................................................

// 原生js中不考虑参数类型和各数，比如求和，我需要传入的是数字
// function sum(a, b) {
//   return a + b
// }
// console.log(sum(888, 2));
// console.log(sum(888, '2'));
function sum(a: number, b: number):number {
  // (a: number, b: number):number-------括号里是定义参数的传入类型，最后一个是定义返回值的类型
  console.log(a+b);
  return a+b+'55555' //返回类型是字符串会爆红
  return a+b
}
sum(888, 2)
sum(888, "55555") // b的类型不对
sum(888, "555555555555", 88) // 参数多了
sum(7) // 参数少了
